Struts2升级到2.5.16 |
您所在的位置:网站首页 › struts2 2337升级到2522 › Struts2升级到2.5.16 |
在对项目进行安全检测的时候发现因为Struts2版本的问题,项目存在着很大的漏洞。因此需要对Struts2进行升级,解决漏洞。 直接将Struts2升级到最新版本2.5.16。 首先需要下载struts2.5.16的包,下面是下载地址,下载里面有很多包,下载下来打开关于lib的解压文件,很多升级包在这个里面就可以找到。 struts2.5.16版本下载链接:http://mirrors.hust.edu.cn/apache/struts/2.5.16/struts-2.5.16-all.zip 在升级struts2到2.5.16版本需要升级的包里面有一个包是jackson-dataformat-xml-2.1.2.jar,这个包在上面地址上面是无法下载的,它的下载地址在下面 http://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.1.2/jackson-dataformat-xml-2.1.2.jar 下载完之后,要做的就是jar包替换,在替换的时候需要注意的是,直接删除项目中lib下的jar包是无法删除的。右键单击项目,选择build path,在这个里面可以看到当前项目需要用到的jar包,选中移除,然后到项目中商储即可。(温馨提示:在删除之前最好做一个原来包文件的备份,防止后面需要找不到)。删除原来的jar包后换上2.5.16的包即可。下面罗列需要更换的包。 struts2-core-2.5.16.jar、struts2-json-plugin-2.5.16.jar、log4j-api-2.10.0.jar、xstream-1.4.10.jar、commons-io-2.5.jar、commons-lang3-3.6.jar commons-fileupload-1.3.3.jar、freemarker-2.3.26-incubating.jar、javassist-3.20.0-GA.jar、jackson-annotations-2.9.0.jar、jackson-core-2.9.4.jar jackson-databind-2.9.4.jar、jackson-dataformat-xml-2.1.2.jar、struts2-rest-plugin-2.5.16.jar 如果项目中没有的包直接添加即可,删掉xwork-core-2.3.28.1.jar,如果没有不用理会。 上面的包我是都替换了,但是个人认为只需要替换struts2-core-2.5.16.jar、struts2-json-plugin-2.5.16.jar即可,由于项目要求解决漏洞的时间比较紧,所以没有做深一步的研究。 替换完包之后需要做的是修改web.xml文件,在web.xml中找到关于struts2的前端控制器的配置,进行修改 struts2 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter StrutsPrepareAndExecuteFilter的路径,以前是org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter修改后没有了.ng 修改完web.xml文件之后,需要修改的是struts.xml文件,在struts.xml文件中添加下面内容 这是关于常量的修改,对于后面两个常量的解释是,在以前的struts2版本中,如果不指定action访问的方法,则会去访问一个默认的方法execute,在这里将这个设置为空。在这里如果不为空,则不会将action中配置的method传递过来。 在struts.xml中设置所有方法都被允许,在package标签中设置,在package标签中添加regex:.* global-allowed-methods在package中的位置必须是在所有action之前,在所有其他global之后,不然就会报错,需要注意的是global-allowed-methods这个属性只在同一个package中起作用。到此我的项目关于Struts2的升级工作就完成了。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |